home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d18 / genx.arc / GENDOX.TXT < prev    next >
Text File  |  1991-01-09  |  5KB  |  126 lines

  1. User notes for GENMAK
  2. ---------------------
  3.  
  4. GENMAK is a program for creating customized MAKE files compatible with
  5. the Turbo MAKE utility.  The output created by GENMAK can be
  6. easily modified with the TC editor.  Requirements for using GENMAK
  7. are:
  8.         -    the Turbo Make utility
  9.         -    a librarian utility
  10.         -    a linking utility
  11.  
  12. The ideal conditions for GENMAK are when between 15 - 20 EXE files
  13. must be created and there are between 30 - 40 OBJ support files.
  14.  
  15.  
  16. GENMAK philosophy
  17. -----------------
  18.  
  19. GENMAK thinks that a directory containing a variable number of C and H
  20. files are all related in some way to a "target" system:
  21.  
  22.     -    some C files are intended to become EXE files
  23.  
  24.     -    some C files are intended to become OBJ files
  25.          that support those in the first category
  26.  
  27.     -    H files, INC files, etc. should be specified in
  28.          MAKE dependency rules, but are not intended to
  29.          become EXE or OBJ files
  30.  
  31. Because the number of OBJ modules can sometimes be quite large, the
  32. maximum size of the LINK/TLINK command tail (128 bytes) poses problems.
  33. To work around this, GENMAK likes to put all OBJ files into a single
  34. LIB file (designated by the MAKE macro, PROJECT_LIBRARY).  This approach
  35. requires that you have a librarian utility, such as LIB, OLIB, TLIB, etc
  36. (designated by the MAKE macro, LIBRARIAN_NAME) in your PATH.
  37.  
  38. When the EXE files are linked, the project library is included.
  39.  
  40. Detailed instructions
  41. ---------------------
  42.  
  43.     1.    Move all the C files needed by your target system
  44.         into the directory containing GENMAK.
  45.  
  46.     2.  Run GENMAK
  47.  
  48.         a.  The information panel provides an opportunity
  49.             to adjust the macros.  The default values
  50.             assume a LARGE memory model with the related
  51.             link files (C0L.OBJ, etc) on drive D:
  52.  
  53.             If you are using commercial libraries, be
  54.             sure to include those in the LINK_SUFFIX
  55.             macro.  Failure to do this may cause a
  56.             system crash when LINK/TLINK gets underway.
  57.  
  58.         b.  GENMAK then examines each C file for
  59.             occurences of the include directive.  When
  60.             an include directive is encountered (even
  61.             those commented or ifdef'ed out), it uses
  62.             the following rule:  if the include file
  63.             is enclosed in angle brackets (such as
  64.             <stdio.h>), it is ignored;  if the include
  65.             file is enclosed in quotes, it is picked up
  66.             as a MAKE dependency.
  67.  
  68.         c.  When the scanning process is complete, GENMAK
  69.             will a pop-up menu to determine the disposition
  70.             of each file:
  71.  
  72.                 -   The file should be compiled to an OBJ
  73.                     file.  In this case, the file is
  74.                     compiled and added to your project
  75.                     library (a "lib" file).
  76.  
  77.                 -   The file should be compiled as an EXE
  78.                     file.  In this case, the file is compiled
  79.                     and linked to the project library file.
  80.  
  81.                 -   The file should be ignored.
  82.  
  83.         d.  GENMAK will return with a message giving the file
  84.             specification of the MAKE file, it will look some-
  85.             thing like TMP1.$$$ as it is named via the "tmpnam"
  86.             function.
  87.  
  88.     3.  Pull the new MAKE file into a text editor and make
  89.         any necessary modifications.  With the Turbo MAKE
  90.         utility, you can simulate a run with the -n option
  91.         (make -n -ftmp1.$$$).
  92.  
  93. Caveats and Observations
  94. ------------------------
  95.  
  96. Creating a MAKE macro to specify your "include" and "lib"
  97. subdirectories is a bewildering exercise.  My advice is to
  98. forget it.
  99.  
  100. An interesting idea for those particularly convoluted situations
  101. is to try something like:    make -n -fmymake >oneshot.bat
  102. then edit the batch file.
  103.  
  104. Don't forget that the Microsoft linker will concatenate the
  105. options you pass on the command tail with any options existing
  106. in your LINK environment variable.  My autoexec contains the
  107. command:
  108.  
  109.         set link=/SE:1000 /PAC /F
  110.  
  111. Another interesting, not clearly documented feature of the
  112. Turbo Make utility is the ability to insert a dependency
  113. condition without having a related command.  This is my
  114. technique for incorporating multiple EXE files into a
  115. single make (using a "psuedo" rule called COMPLETE).
  116.  
  117. GENMAK does not understand the following concepts:
  118.  
  119.     -    Nested includes
  120.     -    Include statements that have been commented out
  121.     -    Include statements that have been defined out
  122.  
  123. GENMAK is public domain.  You are free to use/gain from it as
  124. you see fit without obligation on your part.  There is no
  125. obligation or liability on my part.  Garry J. Vass  [72307,3311]
  126.